#include <stdio.h>
long long derangement(int n) {
    if (n == 1) {
        return 0;
    } else if (n == 2) {
        return 1;
    }
    long long a = 0;  
    long long b = 1;  
    long long result;
    for (int i = 2; i < n; i++) {
        result = (i) * (a + b); 
        a = b;
        b = result;
    }
    return result;
}

int main() {
    int n;
    printf("请输入信和信封的数量 n: ");
    scanf("%d", &n);

    long long ways = derangement(n);
    printf("将 %d 封信装入编号不同的 %d 个信封的装法有 %lld 种。\n", n, n, ways);

    return 0;
}